// pages/category/category.js
import { Category } from 'category-model.js';
var category = new Category();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    loadingHidden: false,
    currentMenuIndex:0,
    loadedData:{},
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this._loadData();
  },

  _loadData: function (callback) {
    var that = this;
    //获取所有类目
    category.getCategoryType((categoryData) =>    {
      that.setData({
        categoryTypeArr: categoryData,
        loadingHidden: true
      });
      //获取指定类目下的所有商品
      category.getProductsByCategory(categoryData[0].id, (data) => {
        var dataObj = {
          procucts: data.products,
          topImgUrl: categoryData[0].topic_img.url,
          title: categoryData[0].name
        };
        that.setData({
          loadingHidden: true,
          categoryInfo0: dataObj
        });
        that.data.loadedData[0] = dataObj;
      });
    });
    
  },
  //点击类目事件
  changeCategory:function(event){
    var index = category.getDataSet(event,'index'),
      id = category.getDataSet(event,'id');
    this.setData({
      currentMenuIndex:index
    });
    //如果没有加载过数据，则从api服务器获取
    if (!this.isLoadedData(index)){
      //获取点击类目下的商品信息
      category.getProductsByCategory(id, (data) => {
        var dataObj = {
          procucts: data.products,
          topImgUrl: data.topic_img.url,
          title: data.name
        };
        this.setData({
          loadingHidden: true,
          categoryInfo0: dataObj
        });
        //临时保存数据
        this.data.loadedData[index] = dataObj;
      });
    }else{
      //从临时保存的数据中取得商品信息
      this.setData({
        categoryInfo0: this.data.loadedData[index]
      });
    }
    
  },
  //点击跳转到商品详情页
  onProductsItemTap:function(event){
    var id = category.getDataSet(event, 'id');
    wx.navigateTo({
      url: '../product/product?id=' + id
    })
  },
  //判断是否数据已加载过
  isLoadedData(index){
    if(this.data.loadedData[index]){
      return true;
    }else{
      return false;
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
  
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
  
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
  
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
  
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
  
  },

  /**
   * 用户点击右上角分享
   */
  //分享效果
  onShareAppMessage: function () {
    return {
      title: '零食商贩 Pretty Vendor',
      path: 'pages/category/category'
    }
  }
})